package com.jeesite.modules.digitalize.controller;

import com.jeesite.modules.digitalize.entity.dto.RecycleBinDelDTO;
import com.jeesite.modules.digitalize.entity.vo.component.ComponentRecycleVo;
import com.jeesite.modules.digitalize.service.RecyclebinService;
import com.jeesite.modules.digitalize.util.response.ResultVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author patronli
 * @Description: 回收站
 * @date 2024年01月03日 15:28:24
 */
@RestController
@Api(tags = "数字-回收站 相关功能")
@RequestMapping("${adminPath}/digitalize/recyclebin")
public class RecyclebinController {

    @Resource
    private RecyclebinService recyclebinService;

    /**
     * @date 2024年01月03日 15:29:33
     * @author patronli
     * @Description: 查询BIm模型、模型集成、图纸文件、资料文件 删除的文件，注意BIm模型、图纸文件、资料文件 只查询当前删除批次的最外层
     */
    @ApiOperation("回收站列表 BIM模型&图纸文件")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "fileName", value = "文件名称或文件ID", required = false),
    })
    @GetMapping("recycleList")
    public ResultVo<List<ComponentRecycleVo>> recycleList(@RequestParam(required = false) String fileName,
                                                          @RequestParam(required = true) String projectCode) {
        return recyclebinService.recycleList(fileName,projectCode);
    }
    /**
     * @date 2024年01月03日 15:31:29
     * @author patronli
     * @Description: 恢复
     */
    @ApiOperation("恢复")
    @PostMapping("restore")
    public ResultVo restore(@RequestBody List<RecycleBinDelDTO> dtos) {
        return recyclebinService.restore(dtos);
    }
    /**
     * @date 2024年01月03日 16:02:44
     * @author patronli
     * @Description: 删除
     */
    @ApiOperation("删除")
    @PostMapping("del")
    public ResultVo delFile(@RequestBody List<RecycleBinDelDTO> dtos) {
        return recyclebinService.delFile(dtos);
    }
}
